<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/

/* .../public/url  */

Route::get('/', function()
{
	return View::make('hello');
});


/*no se usa al final*/
Route::post('notification', function()
{
	//$tag = $_POST['tag'];

       switch ($tag){
         case 'usersave':
              $username = "";
              $gcmcode = "";
              if(isset($_POST['username']))
               $username = $_POST['username'];
              if(isset($_POST['gcmcode']))
               $gcmcode = $_POST['gcmcode'];
              
              $notis = new NotificationController();
              echo $notis->saveUser($username, $gcmcode);
          break;
         case 'sendmessage':
              $username = "";
              $message = "";
              $collapseKey = "";
              if(isset($_POST['message']))
               $message = $_POST['message'];
              if(isset($_POST['username']))
               $username = $_POST['username'];
              if(isset($_POST['collapsekey']))
               $collapseKey = $_POST['collapsekey'];
                $notis = new NotificationController();
              echo $notis->sendMessageToPhone($collapseKey, $message, $username);
              break;
             default:
              $response = array("success" => "0", "err" => "no tag");
              echo json_encode($response);
          break;
        }
});

/*

El registro de usuarios

*/

Route::post('registro', function()
{
    
   $user = DB::table('usuarios')->where('email', Input::get('email'))->first();
    if($user==NULL){
     //   $userController = new UserController;
   //     $result = $userController->newUser();
        /*redirecciona al perfil*/
        //return Redirect::to('/');
        $usuario = new Usuarios;
        $usuario->email =  Input::get('email');
        $usuario->password = Input::get('password') ;
        $usuario->save();
        $user = DB::table('usuarios')->where('email', Input::get('email'))->first();
        $array = array(
                "id_usuario" =>  $user->id_usuario,
                "apodo" =>  $user->apodo,
                "email" => $user->email,
                "nombre"   => $user->nombre,
                "id_ciudad"  => $user->id_ciudad,
                "id_pais"  => $user->id_pais,
                "id_vives"  => $user->id_vives,
                "estado" => "ok",
                "asunto" => "usuario registrado",
            );

    }else{
        //echo "pass: ".Input::get('password')." //ha habido algun problema de user repetido o password vacio ";
        $array = array(
                "estado" => "ko",
                "asunto" => "El usuario ya existe",
            );
       
       //  return Redirect::to('/');
     }  
     echo json_encode($array);
});

/*

El login de usuarios

*/

Route::post('login', function()
{

    $user = DB::table('usuarios')->where('email', Input::get('email'))->first();
    if( $user!=NULL ){
        if(Input::get('password') == $user->password){
            $array = array(
                "id_usuario" =>  $user->id_usuario,
                "apodo" =>  $user->apodo,
                "email" => $user->email,
                "nombre"   => $user->nombre,
                "id_ciudad"  => $user->id_ciudad,
                "id_pais"  => $user->id_pais,
                "id_vives"  => $user->id_vives,
                "estado" => "ok",
                "asunto" => "usuario logueado",
            );
            
         }else{
            $array = array(
                "estado" => "ko",
                "asunto" => "Password Incorrecto",
            );
            // return Redirect::to('/');
         }  
    }else{
        $array = array(
                "estado" => "ko",
                "asunto" => "El usuario no existe",
            );
    }
    echo json_encode($array);
});

/*

Para cuando se olvidan los passwords

*/
Route::post('olvido', function()
{
    
   $user = DB::table('usuarios')->where('email', Input::get('email'))->first();
    if($user==NULL){
          $array = array(
            "estado" => "ko",
            "asunto" => "El usuario no existe",
        );
    //    $userController = new UserController;
    //    $result = $userController->newUser();
        /*redirecciona al perfil*/
        //return Redirect::to('/');
     }else{

       
                    
           /* $user = array(
              'email'=> $user->email,
              'name'=>'Laravelovich'
            );*/
             
            // the data that will be passed into the mail view blade template
        
      
            /*$data = array(
              'detail'=> $user->email,
              'password'=>$hoy[0]
            );*/
             
            // use Mail::send function to send email passing the data and using the $user variable in the closure
        /*    Mail::send('emails.welcome', $data, function($message) use ($user)
            {
              $message->from('medi6177@n1nlhg063.shr.prod.ams1.secureserver.net', 'Play2gether');
              $message->to($user['email'], $user['name'])->subject('Welcome to play2getherapp!');
            });*/
        
        $hoy = getdate();
        $key = substr($hoy[0], -1); 
        if($key == 0){
            $key=1;
        }
        if($hoy[0]%$key == 0){
            $search = array("0","3","4","7","8");
            $replace = array("V","F","C","T","S");
            $hoy[0]=$hoy[0]/$key;
        }else{
            $search = array("1","2","5","6","9");
            $replace = array("X","H","N","R","F");
            $hoy[0]=$hoy[0]/($key+1);
        }
        $string = str_ireplace($search, $replace, $hoy, $i);
        $newpass = substr($string[0], 1); 
        $word = explode(".", $newpass);
        $newpass = $word[0];
        $mensaje = "Hemos reseteado tu password:\r\n Nuevo Password: ".$newpass;
        $mensaje = wordwrap($mensaje, 70, "\r\n");
        mail($user->email, 'Play2gether Acceso', $mensaje);

        Usuarios::where('id_usuario', $user->id_usuario)
            ->update(array('password' => $newpass));
    
       //  return Redirect::to('/');
     }  
            $array = array(
            "id_usuario" =>  $user->id_usuario,
            "password" => $newpass,
            "apodo" =>  $user->apodo,
            "email" => $user->email,
            "nombre"   => $user->nombre,
            "id_ciudad"  => $user->id_ciudad,
            "id_pais"  => $user->id_pais,
            "id_vives"  => $user->id_vives,
            "estado" => "ok",
            "asunto" => "email con nueva contraseña enviado",
        );
    echo json_encode($array);
});

/*

envios pendientes

*/

Route::post('envios_pendientes', function()
{
    
    $id = Input::get('id');
//    var_dump($datos);
 //   $datos2 =  Ciudad::where('id_ciudad', '=', 1)->take(10)->get();
//    print_r($datos2);
//    echo $datos2[0]->id_ciudad;
//     echo $datos2[0]->nombre_ciudad;
//    $datos3 = Ciudad::find(2); 
//      var_dump($datos3);
    return 'envios pendientes '.$id;
});

Route::post('cancelar_invitacion', function()
{
    $user = new UserController();
    $user->cancelarInvitacion();
    
});

Route::post('cancelar_vinculacion', function()
{
    $user = new UserController();
    $user->cancelarVinculacion();
    
});

Route::post('vincular', function()
{
    $user = new UserController();
    $user->vincular();
});

Route::post('desvincular', function()
{
    $user = new UserController();
    $user->desvincular();
});
/*

Tareas periódicas

*/

Route::post('crear_vinculacion',array('before' => 'header' ,function()
{
   
        $user = new UserController();
    
    $user->crearVinculacion();
    
    
    
}));    


Route::post('eliminar_envios',array('before' => 'header' ,function()
{
          $tipo_envio = Input::get('tipo_envio');
          $id = Input::get('id_usuario');
          switch($tipo_envio){
              case 0:
            Envios::where('id_usuario', $user2->id_usuario)->where('tipo_envio','=',2)->delete();
                break;
              case 1:
                  Envios::where('id_usuario', $id)->delete();
              break;
              case 2:
                  Envios::where('id_usuario', $id)->where('tipo_envio','=',1)->delete();
                  Envios::where('id_usuario', $id)->where('tipo_envio','=',2)->delete();


            break;
            case 3:
                  Envios::where('id_usuario', $id)->where('tipo_envio','=',3)->delete();

              break;
               case 4:
                  Envios::where('id_usuario', $id)->where('tipo_envio','=',4)->delete();

              break;
          }
}));


Route::post('pooling',array('before' => 'header' ,function()
{
    /*
    1: envios_pendientes
    */
   $asunto = Input::get('asunto');
   $asunto = 'envios_pendientes';
       switch($asunto){
        case 'envios_pendientes':
        /*si encuentro algo con la id le mando toda la info, si es envio pendiente de vinculacion o algo asi
            echo "envios_pendientes. Aqui recuperamos los envios pendientes del usuario";*/
         $id = Input::get('id1');
         $tipo_envio = 1000;//Input::get('tipo_envio');
         $array = array();   
        /*recuperamos los envios que son para el usuario*/  
        switch($tipo_envio){   
            case 2:
            /*miramos si hay alguna solicitud de vinculacion*/
              //   $data = Envios::where('id_usuario', $id)->where('tipo_envio','=',2)->get();
                //  var_dump($data);
                //   echo $data[0]->tipo_envio;
               $data =  DB::table('solicitud_enlace')
            ->join('usuarios', 'usuarios.id_usuario', '=', 'solicitud_enlace.id_usuario1')
            ->join('envios_pendientes', 'envios_pendientes.id_usuario', '=', 'solicitud_enlace.id_usuario2')
            ->where('solicitud_enlace.id_usuario2','=',$id)
            ->where('envios_pendientes.tipo_envio','=',2)
            ->get();
            
           // var_dump($data);
            for($i=0;$i<count($data);$i++){
                $array["e".$i]['estado'] = 'ok';
                $array["e".$i]['asunto'] = 'Tienes una solicitud de vinculación';
                $array["e".$i]['tipo_envio'] = $data[$i]->tipo_envio;
                $array["e".$i]['c_vinculacion'] = $data[$i]->c_vinculacion;
                $array["e".$i]['id_usuario_solicitado'] = $data[$i]->id_usuario2;
                $array["e".$i]['id_objeto'] = $data[$i]->id_objeto;
                $array["e".$i]['id_usuario_solicitante'] = $data[$i]->id_usuario1;
                $array["e".$i]['fecha_envio'] = $data[$i]->fecha_envio;
                $array["e".$i]['realizado'] = $data[$i]->realizado;
                    
            }
            break;
            case 1:
            /*vemos si tenemos alguna vinculacion aceptada*/
                    $data = Envios::where('id_usuario', $id)->where('tipo_envio','=',1)->get();
                //  var_dump($data);
                //   echo $data[0]->tipo_envio;
                Envios::where('id_usuario','=',$id)->where('tipo_envio','=',1)->delete();

            for($i=0;$i<count($data);$i++){
                $array["e".$i]['estado'] = 'ok';
                $array["e".$i]['asunto'] = 'Tienes una vinculación aceptada';
                $array["e".$i]['tipo_envio'] = $data[$i]->tipo_envio;
                $array["e".$i]['id_objeto'] = $data[$i]->id_objeto;
                $array["e".$i]['id_usuario'] = $data[$i]->id_usuario;
                $array["e".$i]['fecha_envio'] = $data[$i]->fecha_envio;
                $array["e".$i]['realizado'] = $data[$i]->realizado;
                    
            }
            break;
        case 1000:
            
              $data =  DB::table('envios_pendientes')
              ->join('usuarios', 'usuarios.id_usuario', '=', 'envios_pendientes.id_usuario')  
              ->where('envios_pendientes.tipo_envio','<',3)
              ->where('envios_pendientes.tipo_envio','>',0)
              ->where('envios_pendientes.id_usuario','=',$id)   
              ->get();


            if($data != NULL){
                for($i=0;$i<count($data);$i++){
                    $array['vinculacion']["e".$i]['estado'] = 'ok';
                    $array['vinculacion']["e".$i]['asunto'] = 'Envios pendientes';
                    
                    
                    if($data[$i]->tipo_envio == 1 ){
                        
                        $array['vinculacion']["e".$i]['email'] = $data[$i]->email;
                        $array['vinculacion']["e".$i]['apodo'] = $data[$i]->apodo;
                        $array['vinculacion']["e".$i]['c_vinculacion'] = '';
                        
                    }else if($data[$i]->tipo_envio == 2){
                        $u =  DB::table('usuarios')
                        ->join('solicitud_enlace','solicitud_enlace.id_usuario1','=','usuarios.id_usuario')
                        ->where('solicitud_enlace.id_usuario2','=',$data[$i]->id_usuario)->first();
                         $a =  DB::table('solicitud_enlace')
                        ->where('solicitud_enlace.id_usuario2','=',$data[$i]->id_usuario)->first();
                        $array['vinculacion']["e".$i]['email'] = $u->email;
                        $array['vinculacion']["e".$i]['apodo'] = $a->apodo;
                        $array['vinculacion']["e".$i]['c_vinculacion'] = $a->c_vinculacion;

                    }
                    
                    $array['vinculacion']["e".$i]['tipo_envio'] = $data[$i]->tipo_envio;
                    $array['vinculacion']["e".$i]['id_objeto'] = $data[$i]->id_objeto;
                    $array['vinculacion']["e".$i]['id_usuario'] = $data[$i]->id_usuario;
                  //  $array["e".$i]['fecha_envio'] = $data[$i]->fecha_envio;
                //    $array["e".$i]['realizado'] = $data[$i]->realizado;
                        
                }    
            }else{
                
                 //   $array['vinculacion']["e0"]['email'] = '';
                //    $array['vinculacion']["e0"]['apodo'] = '';
                //    $array['vinculacion']["e0"]['c_vinculacion'] = '';
                //    $array['vinculacion']["e0"]['estado'] = 'ko';
                //    $array['vinculacion']["e0"]['asunto'] = 'Envios pendientes';
                //    $array['vinculacion']["e0"]['tipo_envio'] = '0';                    
                  
            }
             $user = new HomeController();
    
            $data = $user->enviosSugerencia($id);
            $forms = $user->sugerenciaFormulario($id);
            if($data != NULL){
                
                $array['sugerencias'] = $data;
                
            }
            if($forms !=NULL){
                $array['formularios'] = $forms;
            }
            
           break;
        }
    }   
    
    
    
    if($array != NULL){
        echo json_encode($array);
    }
   // $datos = new Ciudad;
//    var_dump($datos);
//    $datos2 =  Ciudad::where('id_ciudad', '=', 1)->take(10)->get();
//    print_r($datos2);
//    echo $datos2[0]->id_ciudad;
//     echo $datos2[0]->nombre_ciudad;
//    $datos3 = Ciudad::find(2); 
//      var_dump($datos3);
 //   return 'pooling! '.$tipo;
}));

Route::post('usuario', function()
{
      $user = new UserController();
    
    $user->actualizarPerfilCompleto();
    
   
});

Route::post('actualizar_perfil', function()
{
    
    
    $user = new UserController();
    
    $user->actualizarPerfil();
    
    
});


Route::any('repara',function(){
        $user = new HomeController();
    $user->repara();
});

Route::any('infokamasutra', function()
{
    header('Content-Type: application/json; Charset=UTF-8');
  //  header('Content-Type: text/html; charset=utf-8');
   $kamasutra = DB::table('kamasutra')->get();
//    var_dump($datos);
 //   $datos2 =  Ciudad::where('id_ciudad', '=', 1)->take(10)->get();
//    print_r($datos2);
//    echo $datos2[0]->id_ciudad;
//     echo $datos2[0]->nombre_ciudad;
//    $datos3 = Ciudad::find(2); 
//      var_dump($datos3);
  //  var_dump($kamasutra[0]->id_kamasutra);
    $array = array();
    for($i=0;$i<count($kamasutra);$i++){
        $array["a".$i]['id_kamasutra'] = $kamasutra[$i]->id_kamasutra;
        $array["a".$i]['nombre_postura'] = $kamasutra[$i]->nombre_postura;
        $array["a".$i]['imagen'] = $kamasutra[$i]->imagen;
        $array["a".$i]['informacion'] = $kamasutra[$i]->informacion;
        $array["a".$i]['info_el'] = $kamasutra[$i]->info_el;
        $array["a".$i]['info_ella'] = $kamasutra[$i]->info_ella;
            
    }
    //print_r ($array);
//var_dump($array);
  echo json_encode($array);
    
    //return 'envios pendientes '.$id;
});

Route::any('actualizar_datos', function()
{
    header('Content-Type: application/json; Charset=UTF-8');
  //  header('Content-Type: text/html; charset=utf-8');
   $pais = DB::table('pais')->get();
   $ciudad = DB::table('ciudad')->get();
   $vives_con = DB::table('vives_con')->get();
//    var_dump($datos);
 //   $datos2 =  Ciudad::where('id_ciudad', '=', 1)->take(10)->get();
//    print_r($datos2);
//    echo $datos2[0]->id_ciudad;
//     echo $datos2[0]->nombre_ciudad;
//    $datos3 = Ciudad::find(2); 
//      var_dump($datos3);
  //  var_dump($kamasutra[0]->id_kamasutra);
    $array = array();
    for($i=0;$i<count($pais);$i++){
        $array["p".$i]['id_pais'] = $pais[$i]->id_pais;
        $array["p".$i]['nombre_pais'] = $pais[$i]->nombre_pais;
     
            
    }
    for($i=0;$i<count($ciudad);$i++){
        $array["c".$i]['id_ciudad'] = $ciudad[$i]->id_ciudad;
        $array["c".$i]['nombre_ciudad'] = $ciudad[$i]->nombre_ciudad;     
    }
    for($i=0;$i<count($vives_con);$i++){
        $array["v".$i]['id_vives'] = $vives_con[$i]->id_vives;
        $array["v".$i]['nombre_vives'] =  $vives_con[$i]->nombre_vives;    
    }
    //print_r ($array);
//var_dump($array);
  echo json_encode($array);
    
    //return 'envios pendientes '.$id;
});

Route::any('actualizar_postura', function()
{
    header('Content-Type: application/json; Charset=UTF-8');
    $id_usuario = Input::get('id_usuario');
    $id_postura = Input::get('id_postura');
    $me_gusta = Input::get('me_gusta');
    $lo_he_probado = Input::get('lo_he_probado');
  
    $home = new HomeController();
    $result = $home->actualizarPostura($id_usuario, $id_postura, $me_gusta, $lo_he_probado);
    if($result){
        $array = array('estado' => 'ok');
    }else{
        $array = array('estado' => 'ko');
    }

 echo json_encode($array);
    
    //return 'envios pendientes '.$id;
});

Route::any('sugerir_postura', function()
{
    header('Content-Type: application/json; Charset=UTF-8');
    $id_usuario = Input::get('id_usuario');
    $id_postura = Input::get('id_postura');
    $home = new HomeController();
    $result = $home->sugerirPostura($id_usuario, $id_postura);

    if($result){
        $array = array('estado' => 'ok');
    }else{
        $array = array('estado' => 'ko');
    }
 echo json_encode($array);
    
    //return 'envios pendientes '.$id;
});

Route::post('envios_sugerencia',array('before' => 'header' ,function(){
     $id_usuario = Input::get('id_usuario');
    $user = new HomeController();
    $user->enviosSugerencia($id_usuario);
}));

Route::post('aceptar_sugerencia',array('before' => 'header' ,function(){
    $id_sug_usuario = Input::get('id_sug_usuario');
    $user = new HomeController();
    $user->aceptarSugerenia($id_sug_usuario);
}));

Route::post('cancelar_sugerencia',array('before' => 'header' ,function(){
    $id_sug_usuario = Input::get('id_sug_usuario');
    $user = new HomeController();
    $user->cancelarSugerenia($id_sug_usuario);
}));

Route::any('enviar_formulario_completado', function()
{
    header('Content-Type: application/json; Charset=UTF-8');
    $id_usuario = Input::get('id_usuario');
    $id_formulario = Input::get('id_formulario');
    $respuestas = Input::get('respuestas');
    $home = new HomeController();
    $result = $home->envioFormCompletado($id_usuario, $id_formulario, $respuestas);
    if($result){
        $array = array('estado' => 'ok');
    }else{
        $array = array('estado' => 'ko');
    }

    echo json_encode($array);
    
    //return 'envios pendientes '.$id;
});    
Route::any('rechazar_formulario', function()
{
    header('Content-Type: application/json; Charset=UTF-8');
    $id_usuario = Input::get('id_usuario');
    $id_formulario = Input::get('id_formulario');
    $respuestas = 'null';
    $home = new HomeController();
    $result = $home->envioFormCompletado($id_usuario, $id_formulario, $respuestas);
    if($result){
        $array = array('estado' => 'ok');
    }else{
        $array = array('estado' => 'ko');
    }

    echo json_encode($array);
    
    //return 'envios pendientes '.$id;
});    
    
/*
Route::post('newUser',  array('before' => 'postfilter', function(){ //'uses' => 'UserController@newUser'
    
   
})); 
*/